The present invention relates to multi-bit-per-cell Flash memory devices, particularly NAND Flash memory devices, with an extended set of commands that enables efficient modification of Flash internal parameter values, in order to achieve improved device performance in “real life” operation.
NAND Flash memory devices, available in the market, are operated using a command set that allows execution of basic Flash operations, such as Page read, Page program, Block erase and Status and ID read. Different devices from different vendors may contain slight variations on this command set, but there is always a common group of commands, implemented in all the devices—this group of commands allows execution of the basic operations as mentioned above. As an example, a device MT29F2G08AABWP, manufactured by Micron Technology of Boise, Id., USA, may be considered. A data sheet of this device is available on request from Micron Technology. The following device commands are listed on page 22 of the MT29F2G08AABWP data sheet:
PAGE READ
PAGE READ CACHE MODE START
PAGE READ CACHE MODE START LAST
READ for INTERNAL DATA MOVE
RANDOM DATA READ
READ ID
READ STATUS
PROGRAM PAGE
PROGRAM PAGE CACHE
PROGRAM for INTERNAL DATA MOVE
RANDOM DATA INPUT for PROGRAM
BLOCK ERASE
RESET
In addition to the “standard” command set that is generally available for the applications, Flash vendors usually implement a set of additional “special” commands for setting values of internal parameters of the Flash operation. These commands are intended to ease debugging and evaluation processes of the Flash device, and as such address each Flash parameter separately, a single parameter per command.
As an example of internal Flash device parameters whose values are set by such “special” commands, one may consider programming and read parameters such as read reference voltages, program verify reference voltages, programming voltage steps, etc., as described in Chen et al., U.S. Pat. No. 7,020,017. This patent is incorporated herein by reference for all purposes as if fully set forth herein.
However, as the Chen et al. patent suggests, it is sometimes important to modify internal parameter values of a Flash memory device not only for development purposes, but also as a standard practice in a “real life” operation of the Flash memory device. The Chen et al. patent suggests using different settings of Flash parameter values when handling different pages of the Flash memory device, as a countermeasure for a phenomenon of different reliability exhibited by different Word Lines in the Flash memory. Specifically, the Chen et al. patent teaches using different values of read reference voltages and/or program verify reference voltages for different word lines of a multi-bit-per-cell Flash memory device.
Another example for the need to modify Flash parameter values in real life applications may be found in an U.S. patent application Ser. No. 11/651,483 “METHOD FOR GENERATING SOFT BITS IN FLASH MEMORIES” to Murin et al. This patent application is incorporated herein by reference for all purposes as if fully set forth herein.
As the Murin et al. patent application suggests, in order to obtain Soft Bit information for ECC computation, several readings of the Flash data with different read references for all voltages levels should be performed.
In all of the cases described above (changing of Word Line programming settings or reading information for computation of Soft Bits), modification of the values of the multiple Flash parameters (read voltages, program verify voltages, programming parameters) is currently done one-by-one, using “special commands” acceptable by the Flash. However, because numerous parameter values have to be changed for every mode change (especially in a multi-bit-per-cell device, in which the number of voltage level parameters grows exponentially with the number of bits stored in each cell), the operation of changing parameter values is quite cumbersome for the application and is also time consuming.
There is thus a widely recognized need for, and it would be highly advantageous to have, a way of changing a full set of Flash parameter values by an application in an efficient way, without the need of issuing a large number of special commands for effecting the mode change.